/*
 ------------------------------------------------------------------------------
 Copyright (C) 2013 Eternal Games.

 This file is part of the EternalTech source code.

 The EternalTech source code is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or (at your
 option) any later version.

 The EternalTech source code is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 more details.

 You should have received a copy of the GNU General Public License along with
 the EternalTech source code; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 ------------------------------------------------------------------------------
*/


//
// sg_monster.cpp - monster entities
//


#include "sg_local.h"


/*
 ==============================================================================

 MONSTER_ARMY

 ==============================================================================
*/


/*
 ==================
 
 ==================
*/
void SG_MonsterArmy_Spawn (etEntity *self){

}


/*
 ==============================================================================

 MONSTER_ENFORCER

 ==============================================================================
*/


/*
 ==================
 
 ==================
*/
void SG_MonsterEnforcer_Spawn (etEntity *self){

	monster_t	*monster = (monster_t *)self->state.buffer;

	// Parse all the spawn parameters that will be transmitted to clients
	self->ParseMonsterState();

	// Get the audible range
	self->audibleRange = self->spawnDict.GetFloat("audibleRange", "2500");
	self->audibleRange = Max(self->audibleRange, 0.0f);

	// Get the sound shader

	// Finish setting up
	if (monster->model)
		self->flags |= FL_VISIBLE;

	// Allocate the animator
	self->animator = Anim_AllocAnimator();

	// Set up the animation

	// Set the clip model

	if (self->IsHidden()){

	}
	else {

	}

	// Enable physics
	self->EnablePhysics();
}

/*
 ==============================================================================

 MONSTER_DOG

 ==============================================================================
*/


/*
 ==================
 
 ==================
*/
void SG_MonsterDog_Spawn (etEntity *self){

}


/*
 ==============================================================================

 MONSTER_OGRE

 ==============================================================================
*/


/*
 ==================
 
 ==================
*/
void SG_MonsterOgre_Spawn (etEntity *self){

}


/*
 ==============================================================================

 MONSTER_KNIGHT

 ==============================================================================
*/


/*
 ==================
 
 ==================
*/
void SG_MonsterKnight_Spawn (etEntity *self){

}


/*
 ==============================================================================

 MONSTER_ZOMBIE

 ==============================================================================
*/


/*
 ==================
 
 FIXME: this entity use a flag to determine if crucified
 ==================
*/
void SG_MonsterZombie_Spawn (etEntity *self){

}

/*
 ==============================================================================

 MONSTER_WIZARD

 ==============================================================================
*/


/*
 ==================
 
 ==================
*/
void SG_MonsterWizard_Spawn (etEntity *self){

}

/*
 ==============================================================================

 MONSTER_DEMON1

 ==============================================================================
*/


/*
 ==================
 
 ==================
*/
void SG_MonsterDemon1_Spawn (etEntity *self){

}


/*
 ==============================================================================

 MONSTER_SHAMBLER

 ==============================================================================
*/


/*
 ==================
 
 ==================
*/
void SG_MonsterShambler_Spawn (etEntity *self){

}


/*
 ==============================================================================

 MONSTER_SHALRATH

 ==============================================================================
*/


/*
 ==================
 
 ==================
*/
void SG_MonsterShalrath_Spawn (etEntity *self){

}


/*
 ==============================================================================

 MONSTER_BOSS

 ==============================================================================
*/


/*
 ==================
 
 ==================
*/
void SG_MonsterBoss_Spawn (etEntity *self){

}